﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Model;
using MySql.Data.MySqlClient;
using DAL;

/// <summary>
/// 业务逻辑层BLL
/// </summary>

//在BLL层系统将用户进行的登录相应操作（即输入用户名和密码），形成相应的sql执行命令，此层需要用到数据访问层DAL和实体层Model
namespace BLL
{
    public class UserService
    {
        //在BLL层形成的相应登录sql语句需要用到实体层Model中实例化出的用户名和密码（用到了Model层）
        public static string UserLogin(BookUser u)
        {
            string sql = "select count(*) from t_users where UserName=@UserName and UserPwd=@UserPwd";
            MySqlParameter[] parameters = new MySqlParameter[2] { new MySqlParameter("UserName", u.UserName), new MySqlParameter("UserPwd", u.UserPwd) };
            //将形成的sql语句和用户名及密码的信息去数据访问层DAL中使用，使得DAL层可以去数据库中进行操作（用到了DAL层），并将执行结果result赋予x
            string x = sqlHelper.ExcuteScalar(sql, parameters);
            return x;//x="1"则存在该用户，x="-1"则出现连接异常，x=""则密码或用户名出错
        }

        public static bool AddUser(BookUser user)
        {
            string sql = @"insert into t_users(UserName,UserPwd,RoleId) values (@UserName,@UserPwd,@RoleId)";
            MySqlParameter[] parameters = new MySqlParameter[3] { new MySqlParameter("UserName", user.UserName), new MySqlParameter("UserPwd", user.UserPwd),new MySqlParameter("RoleId", user.RoleId) };
            if (sqlHelper.ExcuteNonquery(sql, parameters) > 0)
                return true;
            else
                return false;

        }

        public static int GetUserRoleId(BookUser u)
        {
            string sql = @"select RoleId from t_users where UserName=@UserName";
            MySqlParameter[] parameters = new MySqlParameter[1] {new MySqlParameter("UserName",u.UserName="a")};
            return sqlHelper.GetRoleId(sql, parameters);
        }
    }
}
